package org.scboy.rbac.service;

import java.util.List;

import org.scboy.utils.entitys.coobi.Model;
import org.scboy.utils.entitys.coobi.Page;


/**
 * 
 * 用户相关业务操作类。
 * @author yanghao
 *
 */
public interface UserService {
	/**
	 * 分页查询用户（查询参数Model，分页参数Limit）。
	 * @param model
	 * @param limit
	 * @return
	 */
	Page page(Model model);
	
	/**
	 * 查询用户集合
	 * @param model
	 * @return
	 */
	List<Model> list(Model model);
	/**
	 * 根据用户ID获取用户信息（用户ID）。
	 * @param userId
	 * @return
	 */
	Model get(String userId);
	/**
	 * 根据用户ID和用户密码获取用户信息（用户ID，用户密码）。
	 * @param userId
	 * @param password
	 * @return
	 */
	Model get(String userId,String password);
	/**
	 * 新增用户（用户Model）。加入事务注解@Transactional。
	 * @param model
	 * @return
	 */
	boolean add(Model model);
	/**
	 * 编辑用户（用户Model）。加入事务注解@Transactional。
	 * @param model
	 * @return
	 */
	boolean update(Model model);
	/**
	 * 密码重置（用户ID，新密码）。加入事务注解@Transactional。
	 * @param id
	 * @param newPassword
	 * @return
	 */
	boolean rePassword(String id,String newPassword);
	/**
	 * 启用禁用用户（用户ID）。加入事务注解@Transactional。
	 * @param id
	 * @return
	 */
	boolean checkState(String id);
	
	/**
	 * 导入用户
	 * @param datas
	 * @return
	 */
	String importUser(List<Model> datas);
	
	/**
	 * 获取用户信息
	 * @param id
	 * @return
	 */
	Model getUserInfo(String id);
}
